home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Format Collection 21
/
PC Format CD-ROM Collection 21 (1995-12)(Future Publishing)(GB)[issue 51].iso
/
resource
/
optics.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-07-19
|
2KB
|
55 lines
#ifndef OPTICS_H
#define OPTICS_H
typedef struct xyzPoint
/* Three dimensional point */
{
double x,y,z; /* pixel coordinates */
} XyzPoint;
typedef struct optPos
/* An element of an optics move. One of these generated for each
Continue-Move menu press or OptContinue() poco call. */
{
XyzPoint move; /* offset for straight move */
XyzPoint spin_center; /* center point of spin in pixels */
XyzPoint spin_axis; /* a line from 0,0,0 to here defines spin axis*/
XyzPoint spin_angle; /* spins about 3 axis. In degrees */
XyzPoint size_center; /* center point of scaling in pixels */
long xp, xq; /* xscaling factor. newx = oldx*xp/xq */
long yp, yq; /* yscaling factor. newy = oldy*yp/yq */
long bp, bq; /* both scale. Applied after x and y scale */
} OptPos;
typedef struct optState
/* Contains all the motion information for an optics transformation */
{
int pos_count; /* Number of OptPos's */
OptPos *pos; /* Info on all the optics sliders. */
int path_count; /* Points in the optics path (0 if no path) */
int *xpath; /* X coordinates of path */
int *ypath; /* Y coordinates of path */
char path_type; /* one of PATH_ defines below */
Boolean path_closed; /* is movement path closed? */
Boolean outlined; /* is element outlined? */
char element; /* one of EL_ defines below */
} OptState;
/* values for OptState->path_type */
#define PATH_SPLINE 0
#define PATH_POLY 1
#define PATH_SAMPLED 2
#define PATH_CLOCKED 3
/* values for OptState->element */
#define EL_SCREEN 0
#define EL_THECEL 1
#define EL_POLY 2
#define EL_SPLINE 3
#define EL_TWEEN 4
#endif /* OPTICS_H */